package models

import (
	"mz_water/entity"
	"mz_water/util"
	"time"
)

type Money struct {
	Id         string    `gorm:"column:ID";json:"id";`
	UserId     string    `gorm:"column:UserId";json:"user_id"`
	Type       int       `gorm:"column:Type";json:"type"`
	Money      float64   `gorm:"column:Money";json:"money"`
	After      float64   `gorm:"column:After";json:"after"`
	Before     float64   `gorm:"column:Before";json:"before"`
	CreateTime time.Time `gorm:"column:CreateTime";json:"createTime"`
	UpdateTime time.Time `gorm:"column:UpdateTime";json:"update_time"`
}

func (m Money) TableName() string {
	return "mz_money"
}

func TopUp(n Money, userId string) (res *entity.Result) {
	res = &entity.Result{}
	money := &Money{
		Id:     util.NewId(),
		UserId: userId,
		Type:   n.Type,
		Money:  n.Money,
		//After: n.After,
		//Before: n.Before,
		//CreateTime: time.Now(),
		//UpdateTime: time.Now(),
	}
	if row := util.GetDb().Select("Money").Where("UserId = ?", userId).Take(money); row.Error != nil {
		res.SetCode(201)
		//res.SetData(util.err)
		res.SetMessage("充值失败")
		return res
	} else {

	}

	if err := util.GetDb().Create(money).Error; err != nil {
		res.SetCode(201)
		res.SetData(err)
		res.SetMessage("充值失败")
		return res
	}
	res.SetCode(200)
	return res
}
